int a[]求个数问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 04:34:19
int a[]是个函数中的一个参数,如下
void outputUnqiue(int a[])
{
//怎么在这个函数里求数组a[]的个数
//sizeof(a)不行,那位大哥求教下,不知道数组的个数,outputUnqiue()只要一个参数
}
我是这样想的,如果a[]是个变长数组,当调用是不清楚他的个数的,所以有没有更好的办法来求这种数组的个数呢?

c里面好像没这种功能

你可以变通一下啊,比如a[0]里面不存数据,而存数组个数,处理时注意一下就是了

还可以用全局变量,当然,这个不推荐

还可以跟char数组的'\0'一样,设定一个特定数值,检测到这个数值时就知道数组结束了

个人感觉没必要,你数组定义的时候时定义长度的,赋值时也是你去赋值,也应该时知道有那些元素是赋过值的。

你也可以自己设个标志存在最后为一个元素。

c语言中没有直接的办法。但可以自己想办法解决。
1、修改函数接口,增加参数n,指定数组个数。
2、为数组设置结束标志。设置一个你的数组中不会出现的数,作为结束标志,搜索到这个数的时候就表示数组结束。如0xFFFFFFFF,或连续2个,3个,或者更多,视你需求而定。

C++的数组名当参数传递时,根本不关心数组大小,所以你根本得不到数组大小,按你的要求只能用STL中的vector

你可以在存数组的时候把数组的个数存在a[0]里面,在你函数调用的时候先读a[0]就可以了。

这个太简单了
int i = 0;//全局变量
void outputUnqiue(int a[])
{
i = 0;
while(a[i])
i++;
}